package com.dingreading.cloud.admin.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 实体类。
 *
 * @author Administrator
 * @since 2023-11-22
 */
@Data
@Table(value = "goods_type")
public class GoodsType implements Serializable {

    @Id(keyType = KeyType.Auto)
    private Long id;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()")
    private Date addTime;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private Date editTime;

    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id")
    private Long goodsId;

    /**
     * 名称
     */
    @ApiModelProperty(value = "名称")
    private String name;

    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String unit;

    /**
     * 价格
     */
    @ApiModelProperty(value = "价格")
    private Double price;

    /**
     * 商品图
     */
    @ApiModelProperty(value = "商品图")
    private String img;

    /**
     * 组合商品可售数（弃用）
     */
    @ApiModelProperty(value = "组合商品可售数")
    private Integer num;

    /**
     * 出库方式 1.自营仓库 2.线上发货 3.第三方仓库
     */
    @ApiModelProperty(value = "出库方式")
    private Integer stockOutMethod;

    /**
     * 状态 1.启用 0.禁用
     */
    @ApiModelProperty(value = "商品状态 1.启用 0.禁用")
    private Integer enabled;

    /**/
    /**
     * 组合类型 0.正常商品 1.组合商品
     */
    @ApiModelProperty(value = "组合类型")
    private Integer comboType;

    /**
     * 重量/克
     */
    @ApiModelProperty(value = "重量/克")
    private Double weight;

    /**
     * 库存预警数量
     */
    @ApiModelProperty(value = "库存预警数量")
    private Integer warnNum;

    /**
     * 序号
     */
    @ApiModelProperty(value = "序号")
    private Integer orderNum;

    /**
     * 门店查看权限  1.自营+加盟 2.自营 3.加盟店
     */
    @ApiModelProperty(value = "门店查看权限")
    private Integer showStatus;

    /**
     * 创建人uid
     */
    @ApiModelProperty(value = "创建人uid")
    private String addStaffUid;

    /**
     * 创建人姓名
     */
    @ApiModelProperty(value = "创建人姓名")
    private String addStaffName;

    /**
     * 更新人uid
     */
    @ApiModelProperty(value = "更新人uid")
    private String lastStaffUid;

    /**
     * 更新人姓名
     */
    @ApiModelProperty(value = "更新人姓名")
    private String lastStaffName;

    /**
     * 门店运营类型
     */
    private String operationType;

    /**
     * 门店合作类型
     */
    private String cooperationType;

    /**
     * 科目类型
     */
    private String subjectType;

    /**
     * 套裝能否包邮状态 0.不包邮 1.包邮
     */
    private Integer freeDeliveryStatus;

    /**
     * 商场折扣状态 1.启用 0.禁用
     */
    private Integer discountStatus;

    @Column(ignore = true)
    private List<GoodsTypeCombo> comboList;
}
